#pragma once
#include<iostream>
#include<unistd.h>
#include<sys/types.h>
#include<signal.h>
#include<sys/stat.h>
#include<fcntl.h>
const std::string dev = "/dev/null";

void Daemon(int nochdir,int noclose)
{

    signal(SIGPIPE,SIG_IGN);
    signal(SIGCHLD,SIG_IGN);

    if(fork()>0)
        exit(0);

    pid_t pid = setsid();

    if(nochdir == 0)
        chdir("/");


    if(noclose==0)
    {
        int fd = ::open(dev.c_str(),O_RDWR);
        dup2(fd,0);
        dup2(fd,1);
        dup2(fd,2);
        close(fd);
    }
}